using System.Collections.Generic;
using Comdiv.Extensions;
using Comdiv.Model;
using Comdiv.Model.Interfaces;
using Comdiv.Logging;
using Comdiv.Application;
using Comdiv.Persistence;
using Comdiv.Inversion;
using Comdiv.Security.Acl;
using Comdiv.Conversations;
using Comdiv.IO;
using Comdiv.Security;
using System.Linq;

namespace Comdiv.Dbfs{
    public interface IDbfsRepository {
        string System { get; set; }
        string LastCode { get; set; }
        string NewCode();
        IDbfsRepository Define(string code, string filename, params object[] others);
        IDbfsRepository Define(string code, IFileOperationStructure operation);
        IDbfsRepository Delete(string code);
        IFile Load(string code);
        List<IFile> Search(IDictionary<string,string> tag);
        List<IFile> Search(string name,IDictionary<string,string> tag);
        List<IFile> Search(string system,string name,IDictionary<string,string> tag);
        List<IFile> Search(string system, string name, string type, IDictionary<string, string> tag);
        List<IFile> Search(string hql);
    }
}